package com.jiyun.pojo;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 *
 * </p>
 *
 * @author author
 * @since 2024-11-27
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("rider_queue")
@ApiModel(value = "RiderQueue对象", description = "")
public class RiderQueue implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "id")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty(value = "用户名")
    @TableField(value = "rider_name")
    private String riderName;

    @ApiModelProperty(value = "手机号")
    @TableField(value = "phone_number")
    private String phoneNumber;

    @ApiModelProperty(value = "排队名次")
    @TableField(value = "queue_number")
    private Integer queueNumber;

    @ApiModelProperty(value = "排队状态")
    private String status;

    @ApiModelProperty(value = "下单时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(value = "queue_time")
    private Date queueTime;


    @ApiModelProperty(value = "起点")
    @TableField(value = "starting_point")
    private String startingPoint;

    @ApiModelProperty(value = "终点")
    private String terminal;

    @ApiModelProperty(value = "距离")
    private BigDecimal distance;

    @ApiModelProperty(value = "司机外键")
    private Integer did;

    @ApiModelProperty(value = "车辆类型")
    private String brand;

    @ApiModelProperty(value = "取消订单-用户原因")
    @TableField(value = "rider_reason")
    private String riderReason;

    @ApiModelProperty(value = "取消订单-司机原因")
    @TableField(value = "driver_reason")
    private String driverReason;

    @ApiModelProperty(value = "其他原因")
    @TableField(value = "other_reason")
    private String otherReason;

    @ApiModelProperty(value = "支付状态")
    @TableField(value = "pay_status")
    private Integer payStatus;

    @ApiModelProperty(value = "预估价格")
    private String prices;

    @ApiModelProperty(value = "订单类型")
    @TableField(value = "order_type")
    private Integer orderType;

    @ApiModelProperty(value = "给司机捎话")
    private String exchange;

    @ApiModelProperty(value = "订单编号")
    private String orderId;

    @ApiModelProperty(value = "上车时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(value = "city_time")
    private Date cityTime;

    @ApiModelProperty(value = "订单完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(value = "end_time")
    private Date endTime;

    @TableField(exist = false)
    private Integer day;

    @ApiModelProperty(value = "最终需要支付的车费")
    private BigDecimal endMoney;

    @TableField(exist = false)
    private BigDecimal money;

    @ApiModelProperty(value = "司机当前位置（经度）")
    private String driverLon;

    @ApiModelProperty(value = "司机当前位置（纬度）")
    private String driverLat;

    @ApiModelProperty(value = "乘客当前经度")
    @TableField(value = "useraddss_lon")
    private String useraddssLon;

    @ApiModelProperty(value = "乘客当前纬度")
    @TableField(value = "useraddss_lat")
    private String useraddssLat;

    @TableField(exist = false)
    private BigDecimal num;

    @ApiModelProperty(value = "高速费")
    @TableField(value = "highway_fee")
    private BigDecimal highwayFee;

    @ApiModelProperty(value = "路桥费")
    @TableField(value = "road_bridge_fee")
    private BigDecimal roadBridgeFee;

    @ApiModelProperty(value = "停车费")
    @TableField(value = "parking_fee")
    private BigDecimal parkingFee;

    @ApiModelProperty(value = "附加费")
    @TableField(value = "additional_fee")
    private BigDecimal additionalFee;

    @ApiModelProperty(value = "星级评价")
    private Integer star;

    @ApiModelProperty(value = "司机对用户的评价")
    private String drivervaluation;

    @TableField(exist = false)
    private String userName;

    @TableField(exist = false)
    private String phone;

    @TableField(exist = false)
    private BigDecimal price;

    @TableField(exist = false)
    private BigDecimal monthmoney;

    @TableField(exist = false)
    private String orderNumber;

    @ApiModelProperty("司机的资产总额")
    @TableField(exist = false)
    private BigDecimal sumprice;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public BigDecimal getHighwayFee() {
        return highwayFee;
    }

    public void setHighwayFee(BigDecimal highwayFee) {
        this.highwayFee = highwayFee;
    }

    public BigDecimal getRoadBridgeFee() {
        return roadBridgeFee;
    }

    public void setRoadBridgeFee(BigDecimal roadBridgeFee) {
        this.roadBridgeFee = roadBridgeFee;
    }

    public BigDecimal getParkingFee() {
        return parkingFee;
    }

    public void setParkingFee(BigDecimal parkingFee) {
        this.parkingFee = parkingFee;
    }

    public BigDecimal getAdditionalFee() {
        return additionalFee;
    }

    public void setAdditionalFee(BigDecimal additionalFee) {
        this.additionalFee = additionalFee;
    }

    public BigDecimal getMoney() {
        return money;
    }

    public void setMoney(BigDecimal money) {
        this.money = money;
    }

    public String getDriverLon() {
        return driverLon;
    }

    public void setDriverLon(String driverLon) {
        this.driverLon = driverLon;
    }

    public String getDriverLat() {
        return driverLat;
    }

    public void setDriverLat(String driverLat) {
        this.driverLat = driverLat;
    }

    public Date getQueueTime() {
        return queueTime;
    }

    public Integer getDay() {
        return day;
    }

    public void setDay(Integer day) {
        this.day = day;
    }

    public BigDecimal getEndMoney() {
        return endMoney;
    }

    public void setEndMoney(BigDecimal endMoney) {
        this.endMoney = endMoney;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getRiderName() {
        return riderName;
    }

    public void setRiderName(String riderName) {
        this.riderName = riderName;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public Integer getQueueNumber() {
        return queueNumber;
    }

    public void setQueueNumber(Integer queueNumber) {
        this.queueNumber = queueNumber;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }


    public void setQueueTime(Date queueTime) {
        this.queueTime = queueTime;
    }

    public String getStartingPoint() {
        return startingPoint;
    }

    public void setStartingPoint(String startingPoint) {
        this.startingPoint = startingPoint;
    }

    public String getTerminal() {
        return terminal;
    }

    public void setTerminal(String terminal) {
        this.terminal = terminal;
    }

    public BigDecimal getDistance() {
        return distance;
    }

    public void setDistance(BigDecimal distance) {
        this.distance = distance;
    }

    public Integer getDid() {
        return did;
    }

    public void setDid(Integer did) {
        this.did = did;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getRiderReason() {
        return riderReason;
    }

    public void setRiderReason(String riderReason) {
        this.riderReason = riderReason;
    }

    public String getDriverReason() {
        return driverReason;
    }

    public void setDriverReason(String driverReason) {
        this.driverReason = driverReason;
    }

    public String getOtherReason() {
        return otherReason;
    }

    public void setOtherReason(String otherReason) {
        this.otherReason = otherReason;
    }

    public Integer getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }

    public String getPrices() {
        return prices;
    }

    public void setPrices(String prices) {
        this.prices = prices;
    }

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public String getExchange() {
        return exchange;
    }

    public void setExchange(String exchange) {
        this.exchange = exchange;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }
}
